An overview of normal modeling systems largely in use, is first presented, followed by the limitations of such systems. An overview of Metamodeling systems is then presented, and how it overcomes the limitations. Finally a note on the focus of the current work is made.
As shown in FIG. 1, conventional-modeling tools (1.1) present the user (1.2) with a graphical user interface (1.1a), and allow him to develop specific models that the software is designed for. For example, a database modeling tool allows the user to create entity-relationship models, while an OOP CASE tool allows the user to create class diagrams, sequence diagrams, collaboration diagrams etc. These systems are built with the knowledge (1.1b) of the types of models (1.3) that the tool will allow the user to develop. Thus, each tool can support a known limited set of models.
Limitations of such systems include:                1. If there are changes in the way the models are created, the knowledge embedded in the software has to be updated. Since this knowledge is an inherent part of the software, this needs modification of the code, recompilation and possibly re-linking, before the software is rendered for use with the required modifications.        2. There could be a need to support variations in the way in which the models are created. For example, the workflow modeling done by company A could be different from the way Company B does it. It depends on the particular company and their specific needs, although both of them are basically doing the same activity, namely, defining workflow for business processes.        
Metamodeling tools remedy the above limitations by providing a system which . . .                a. Allows the user to configure the modeling system with a modeling environment, which constitutes a metamodel (or definitions), describing the kinds of models that can be created by the tool.        b. Once the modeling system is configured for a particular modeling environment, it allows the user to create models that are instances of the metamodel (i.e., the models that are created by the user should conform to the definitions provided). The modelling environment can be changed whenever desired, and the model immediately conforms to the new modelling environment.        c. Once the user creates the models, they can be validated to check the integrity of the models and can be persisted if the validation succeeds, or the relevant error messages are given.        d. The system developed thus is reusable at different levels and highly extensible.        
FIG. 2 shows the general structure of such a system. The strategy employed in this system is to take the “knowledge” (2.1) of the types of models out of the system, and let the system only have “meta-knowledge” (i.e., knowledge about the knowledge of the types of models) (2.2a). These will be used by the system to dynamically acquire the knowledge about a particular class of models (i.e., when the user configures the system), and then let the user (2.3) create models conforming to the definitions provided by the acquired knowledge using a GUI (2.2b). Thus, the system behaves according to the configured modeling environment, which not only includes the semantic information about the types of models that can be created (2.4), but also the visual aspects of the models.
The complexity in using metamodeling tools arises from the mechanism for providing the metamodeling system with the knowledge about a modeling environment. Specifically, the following requirements need to be addressed:                1. How to represent the knowledge about a modeling environment?                    What are the node-types that can appear in models?            How many nodes of each type can appear in the models?            What are the edge types that can appear?            The multiplicity and directionality of the edges.                        2. How to configure the system with this information?        3. How does the system use the provided information to validate the models created by the user?        
Answering all the above mentioned questions precisely for a particular modeling environment (like OOP CASE environment, or a Business Process Reengineering environment) is difficult. It often leads to errors and unforeseen situations occur during modeling, which may lead to legal models being rejected by the system. Existing metamodeling systems do not provide an effective and simple mechanism for addressing these issues.